Describe I2C work status
RESP_REC | The received ACK value in master mode or slave mode. 0: ACK. 1: NACK. |
SLAVE_RW | When in slave mode, 1: master reads from slave. 0: master writes to slave. |
TIME_OUT | When the I2C controller takes more than I2C_TIME_OUT clocks to receive a data bit, this field changes to 1. |
ARB_LOST | When the I2C controller loses control of SCL line, this register changes to 1. |
BUS_BUSY | 1: the I2C bus is busy transferring data. 0: the I2C bus is in idle state. |
SLAVE_ADDRESSED | When configured as an I2C Slave, and the address sent by the master is equal to the address of the slave, then this bit will be of high level. |
BYTE_TRANS | This field changes to 1 when one byte is transferred. |
RXFIFO_CNT | This field represents the amount of data needed to be sent. |
STRETCH_CAUSE | The cause of stretching SCL low in slave mode. 0: stretching SCL low at the beginning of I2C read data state. 1: stretching SCL low when I2C TX FIFO is empty in slave mode. 2: stretching SCL low when I2C RX FIFO is full in slave mode. |
TXFIFO_CNT | This field stores the amount of received data in RAM. |
SCL_MAIN_STATE_LAST | This field indicates the states of the I2C module state machine. 0: Idle. 1: Address shift. 2: ACK address. 3: RX data. 4: TX data. 5: Send ACK. 6: Wait ACK |
SCL_STATE_LAST | This field indicates the states of the state machine used to produce SCL. 0: Idle. 1: Start. 2: Negative edge. 3: Low. 4: Positive edge. 5: High. 6: Stop |